import PropTypes from 'prop-types';
import React from 'react';
import Svg, { Circle, Path } from 'react-native-svg';

/**
 * @param height {number}
 * @param width {number}
 * @param style {object}
 * @returns {*}
 * @constructor
 */
function Logo({ height, width, style }) {
  return (
    <Svg height={height} width={width} viewBox="0 0 512 512" style={style}>
      <Circle cx={256} cy={256} r={256} fill="#ffb84d" />
      <Path
        d="M512 256c0-31.561-5.726-61.781-16.171-89.698l-56.002-56.657a25.227 25.227 0 00-13.086-7.877l-27.416-6.555-18.159-18.257c-4.575-4.426-10.794-7.161-17.624-7.161h-70.533L201.973 48.03c-13.591-3.249-27.369 5.212-30.619 18.803l-.708 2.962h-38.207c-13.974 0-25.407 11.433-25.407 25.407v240.67l-10.458 43.741c-2.515 10.521 1.99 21.15 10.458 26.925v10.26c0 6.832 2.734 13.055 7.161 17.632l66.974 66.444C204.838 508.101 229.962 512 256 512c141.385 0 256-114.615 256-256z"
        fill="#ff9a00"
      />
      <Path
        d="M341.513 464.299l-227.507-54.393c-12.838-3.069-20.831-16.085-17.761-28.923L171.68 65.465c3.069-12.838 16.085-20.831 28.923-17.761l227.507 54.393c12.838 3.069 20.831 16.085 17.761 28.923l-75.435 315.519c-3.07 12.837-16.085 20.829-28.923 17.76z"
        fill="#1c2ede"
      />
      <Path
        d="M364.948 442.207H131.03c-13.2 0-24-10.8-24-24V93.796c0-13.2 10.8-24 24-24h233.919c13.2 0 24 10.8 24 24v324.411c-.001 13.2-10.801 24-24.001 24z"
        fill="#4b5be5"
      />
      <Path
        d="M388.947 95.201v321.603c0 13.974-11.433 25.407-25.407 25.407H247.99V69.793h115.55c13.973 0 25.407 11.434 25.407 25.408z"
        fill="#3a4de3"
      />
      <Path fill="#ffe047" d="M133.13 99.38h229.71v313.24H133.13z" />
      <Path fill="#ffcf00" d="M247.99 99.38h114.85v313.24H247.99z" />
      <Circle cx={247.99} cy={256} r={91.46} fill="#00d9e0" />
      <Path
        d="M339.445 255.997c0 50.518-40.948 91.466-91.456 91.466V164.541c50.508 0 91.456 40.948 91.456 91.456z"
        fill="#00b7be"
      />
      <Path
        d="M301.707 256.002l26.859-46.52h-53.717l-26.859-46.521-26.859 46.521h-53.717l26.859 46.52-26.859 46.52h53.717l26.859 46.521 26.859-46.521h53.717l-26.859-46.52zm9.035-36.23l-14.976 25.94-14.976-25.94h29.952zm-20.918 36.23l-20.917 36.23h-41.835l-20.917-36.23 20.917-36.23h41.835l20.917 36.23zm-41.835-72.461l14.977 25.94h-29.953l14.976-25.94zm-62.753 36.231h29.952l-14.976 25.94-14.976-25.94zm0 72.46l14.976-25.94 14.976 25.94h-29.952zm62.753 36.23l-14.977-25.94h29.953l-14.976 25.94zm47.777-62.17l14.976 25.94h-29.953l14.977-25.94z"
        fill="#4b5be5"
      />
      <Path
        d="M328.566 209.481h-53.717L247.99 162.96v20.581l14.977 25.94H247.99v10.29h20.918l20.917 36.23-20.917 36.23H247.99v10.29h14.977l-14.977 25.94v20.581l26.859-46.521h53.717l-26.859-46.52 26.859-46.52zm-47.777 10.291h29.953l-14.976 25.94-14.977-25.94zm29.953 72.46h-29.953l14.976-25.94 14.977 25.94z"
        fill="#1c2ede"
      />
      <Path
        d="M247.989 351.187c-52.486 0-95.186-42.7-95.186-95.185s42.7-95.185 95.186-95.185 95.185 42.7 95.185 95.185-42.699 95.185-95.185 95.185zm0-180.081c-46.811 0-84.895 38.084-84.895 84.895s38.084 84.895 84.895 84.895 84.895-38.084 84.895-84.895-38.084-84.895-84.895-84.895z"
        fill="#8a6746"
      />
      <Path
        d="M247.989 160.815v10.29c46.813 0 84.892 38.09 84.892 84.892 0 46.813-38.079 84.902-84.892 84.902v10.29c52.487 0 95.182-42.705 95.182-95.192 0-52.477-42.695-95.182-95.182-95.182z"
        fill="#644b32"
      />
    </Svg>
  );
}

Logo.defaultProps = {
  height: 120,
  width: 120,
};

Logo.propTypes = {
  height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
  style: PropTypes.object,
};

export default Logo;
